package com.ylbh.modules.comment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.pojo.comment.dto.EvaluateClassDTO;
import com.ylbh.common.pojo.comment.dto.EvaluateClassListDTO;
import com.ylbh.common.pojo.comment.dto.ShoppingCommentReplyDTO;
import com.ylbh.common.pojo.comment.dto.ShoppingGoodsCommentDTO;
import com.ylbh.common.pojo.comment.vo.CommentReplyListVO;
import com.ylbh.common.pojo.comment.vo.EvaluateClassListVO;
import com.ylbh.common.pojo.goods.vo.ShoppingGoodsCommentVO;
import com.ylbh.common.utils.PageUtils;

import java.util.List;

/**
 * 秒殺活动商品信息
 *
 * @author mgh
 * @date 2019-04-22 15:25:57
 */
public interface CommentService extends IService<ShoppingGoodsCommentDTO> {
    /**
     * 根据商品id添加采集评论
     * @param shoppingGoodsCommentDTO
     * @param goodsId
     */
    void addCommentByGoodId(List<ShoppingGoodsCommentDTO> shoppingGoodsCommentDTO, Integer goodsId);

    /**
     * 商城评论列表
     * @param pageDTO
     * @return
     */
    PageUtils queryCommentList(EvaluateClassListDTO pageDTO);

    /**
     * 评论审核
     * @param id
     * @param statusType
     */
    void modifyAuditStatusById(List<Long> id, Integer statusType);

    /**
     * 删除评论
     * @param ids
     */
    void removeCommentById(List<Long> ids);

    /**
     * 评论回复列表
     * @param commentId
     * @return
     */
    CommentReplyListVO getCommentReplyListById(String commentId);

    /**
     * 回复评论提交
     * @param dto
     */
    void addCommentReply(ShoppingCommentReplyDTO dto);

    /**
     * 评价标签列表
     * @param dto
     * @return
     */
    PageUtils queryEvaluateClassList(EvaluateClassListDTO dto);

    /**
     * 获取标签详情
     * @param evaluateId
     * @return
     */
    EvaluateClassListVO getEvaluateClassDetailsById(Integer evaluateId);

    /**
     * 修改评价标签
     * @param dto
     */
    void modifyEvaluateClassById(EvaluateClassDTO dto);

    /**
     * 新增评价标签
     * @param dto
     */
    void addEvaluateClass(EvaluateClassDTO dto);

    /**
     * 删除评价标签
     * @param ids
     */
    void removeEvaluateClassById(Integer ids);

    /**
     * 回复审核
     * @param asList
     * @param statusType
     */
    void modifyAuditReplyById(List<Long> asList, Integer statusType);

    /**
     * 根据id来采集评论接口
     * @param id
     */
    List<ShoppingGoodsCommentDTO> getGoodsComments(String id, Integer numberOfBars, Integer dataPage);

    /**
     * 将评论添加到定时评论表
     * @param shoppingGoodsCommentDTO
     * @param goodsId
     */
    void addTimingComment(List<ShoppingGoodsCommentDTO> shoppingGoodsCommentDTO, Integer goodsId);

    void commentTask();
    /**
     * 根据id来采集评论接口
     * @param goodsCollectionId
     */
    List<ShoppingGoodsCommentDTO> getGoodsCommentsById(String goodsCollectionId);
    /**
     * 将评论添加到商品论表
     * @param shoppingGoodsCommentList
     * @param goodsId
     */
    void insertComment(List<ShoppingGoodsCommentDTO> shoppingGoodsCommentList, Integer goodsId);
}

